//
//  WLLStatusListViewModel.swift
//  WLLWeibo
//
//  Created by 王乐乐 on 16/8/13.
//  Copyright © 2016年 itcast. All rights reserved.
//

import UIKit

class WLLStatusListViewModel: NSObject {
    // 保存微博数据数组
    lazy var dataArray : [WLLStatusViewModel] = [WLLStatusViewModel]()
    
}


extension WLLStatusListViewModel{
    //请求数据,是否是上拉加载更多
    func loadData(isPullUp : Bool,finish:(isSuccess:Bool)->())  {
        /*
         since_id	false	int64	若指定此参数，则返回ID比since_id大的微博（即比since_id时间晚的微博），默认为0。
         max_id	false	int64	若指定此参数，则返回ID小于或等于max_id的微博，默认为0。
         */
        var sinceId : Int64 = 0
        
        var maxId : Int64 = 0
        //判断是否是上加载更多
        if isPullUp {
            // 上拉加载更多
            maxId = self.dataArray.last?.statusModel?.id ?? 0
            if maxId > 0 {
                maxId -= 1
            }
            
        }else{
            //下拉刷新
            sinceId = self.dataArray.first?.statusModel?.id ?? 0
        }
        WLLNetTools.sharedTools.loadHomeData(sinceId, maxId: maxId, success: { (response) in
            print("请求成功\(response)")
            // 判断response 是否为nil  而且是否可以转成一个数组
            guard let res = response?["statuses"] as? [[String:AnyObject]] else{
                finish(isSuccess: false)
                return
            }
            
            //创建一个临时可变数组
            var tmpArray :[WLLStatusViewModel] = [WLLStatusViewModel]()
            // 遍历数组
            for dict in res{
                let status = WLLStatusModel(dict: dict)
                let statusViewModel = WLLStatusViewModel(statusModel: status)
                tmpArray.append(statusViewModel)
            }
            //赋值
            if isPullUp{//上拉
                self.dataArray = self.dataArray + tmpArray
            }else{//下拉
                self.dataArray = tmpArray + self.dataArray
                
            }
            //            print(self.dataArray,self.dataArray.count)
            //成功
            finish(isSuccess: true)
            
            //WARNING:刷新 UI
            //刷新
            //            self.tableView.reloadData()
        }) { (error) in
            print("请求失败\(error)")
            finish(isSuccess: false)
        }
    }

}